The present invention relates generally to network communication systems and methods, and in particular to methods and systems for dynamically balancing a plurality of parallel communication channels with associated queues by grouping and associating packets being transmitted.
A conventional network is made up of a plurality of network components or nodes, such as computing devices, e.g., personal computers, workstations and other similar devices. A limited number of network components and devices on a network spanning a relatively small area is called a local area network (LAN). A collection of LANs connected together is referred to as a wide-area network (WAN). A collection of WANs connected to other LANs and WANs is also referred to as a WAN. The largest WAN is the Internet which is a global network connecting millions of computing devices.
In a Network (LAN, WAN or Internet), most computing devices operate independently of each other, and most computing devices are able to access data or other network components anywhere on the Network. Interconnecting these computing devices and other network components in a Network (LAN, WAN or Internet) are a series of communication links or channels, such as twisted-pair cables, coaxial cables, or fiber optic cables, and network devices, such as routers, switches, and bridges. Each communication channel, however, is subject to limitations, such as limited bandwidth. Bandwidth refers to the amount of data, i.e. network traffic that can be transferred within a particular time period by the particular communication channel. For example, a fiber optic cable conforming to Synchronous Optical Network (SONET) standards with an optical carrier level 1 (OC-1) has a bandwidth of 51.85 Megabits per seconds (Mbps) and an OC-3 fiber optic cable has a bandwidth of 155.52 Mbps.
Conventionally, when additional bandwidth was required, a higher capacity communication channel was installed to replace the lower capacity communication channel. For example, an OC-1 fiber optic cable was replaced by an OC-3 fiber optic cable and thus an additional 100 Mbps of bandwidth was gained. However, completely replacing one communication channel with another communication channel is often costly and time consuming.
Additionally, the number of communication channels and network devices are proportional to the number of computing devices and other network components in a Network. Hence, as the Network grows, i.e. more computing devices and other network components are added, the number of cables and network devices also increases. Therefore, the expense of replacing communication channels often proportionally grows with the expense of adding additional cables and network device.
To reduce these expenses, multiple communication channels in parallel are used to provide the additional bandwidth. By aggregating multiple low-bandwidth parallel communication channels, a single high-bandwidth communication channel can be emulated. For example, three fiber optic cables OC-1 combined has a bandwidth of about 155.55 Mbps which approximately equals a single fiber optic cable OC-3 having a bandwidth of 155.52 Mbps. Likewise, a fraction of a single high-bandwidth communication channel can also be emulated by aggregating a particular number of low-bandwidth parallel communication channels. The aggregation or combining of parallel communication channels requires that a stream of data initially allocated to a single communication channel, be segmented or divided to simultaneously transfer the segmented data stream along one or more parallel communication channels. This technique is often referred to as inverse multiplexing.
However, although the aggregation of parallel communication channels increases bandwidth, the aggregation of parallel communication channels conventionally necessitates that the data stream, specifically data packets, i.e. envelopes containing data, be quickly segmented. Conventionally, this quick division of data packets is achieved with the addition of complex network devices. These complex network devices are required to divide or disassemble the data packets to send out the data simultaneously through multiple communication channels. Furthermore, the complex network devices receiving the disassembled packets must reassemble the data packets in their proper order and format. Therefore, these complex network devices add complexity and cost to the Network, though less than the cost of completely replacing one communication channel with another. Additionally, as the Network changes, e.g., the addition of faster computing devices, or the use of the Network changes, e.g., different segments of the Network transferring tremendous amounts of data at different times, these complex network devices are not adaptable to handle these changes.
The present invention provides for a system and method of aggregating parallel communication channels to emulate a, or a fraction of, a high bandwidth communication channel.
In one embodiment, a method is provided of aggregating of a plurality of parallel communication channels transmitting packets and each parallel communication channel coupled with an associated queue. The method of aggregating a plurality of parallel communication channels includes the steps of assigning packets to each queue associated with each parallel communication channel, measuring the average queue load ratio of each channel, and re-assigning packets which are assigned to a parallel communication channel with the maximum average queue load ratio to a parallel communication channel with the lowest average queue load ratio.
In another embodiment, an adaptive network system is provided that includes a first network, a plurality of parallel communication channels coupled to the first network, and a second network. The adaptive network system also includes a network switch coupled to the second network and to the plurality of communication channels. The network switch includes a plurality of queues associated with each of the plurality of parallel communication channels. Also, the network switch is configured to measure an average queue load ratio of each of the plurality of queues and to assign packets to each of the plurality of queues based on the average queue load ratios measured.
In another embodiment, an adaptive network device that sends packets through a plurality of parallel communication channels is provided. The adaptive network device includes a plurality of network interface devices coupled to a plurality of communication channels, a memory coupled to the plurality of network interface devices, the memory stores a plurality of queues associated with each of the plurality of communication channels, and a processor coupled to the memory. The processor is configured to measure an average queue load ratio of each of the plurality of communication channels and to assign packets to each queue based on the average queue load ratios measured.
Many of the attendant features of this invention will be more readily appreciated as the same becomes better understood by reference to the following detailed description and considered in connection with the accompanying drawings in which like reference symbols designate like parts throughout.